package com.cln.fibonacci;

import junit.framework.TestCase;

public class FibonacciTest extends TestCase {

	public void testFibonacci() {
		// //fib(0) = 0.
		// assertEquals(0, fib(0));
		// //fib(1) = 1
		// assertEquals(1, fib(1));
		// remove duplication
		// int cases[][] = { { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 } ,{5,3}};
		int cases[][] = { { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 } };
		for (int i = 0; i < cases.length; i++)
			assertEquals(cases[i][1], fib(cases[i][0]));
	}

	int fib(int n) {
		if (n == 0)
			return 0;
		if (n == 1)
			return 1;
		return fib(n - 1) + fib(n - 2);
	}
}
